跳到主要内容

自带的 ActionChains 使用

ActionChains 是什么?

ActionChains 类在 Selenium 中用于构建一系列复杂的用户交互。对于模拟正常的行为轨迹,如模拟自然的鼠标移动轨迹,ActionChains 提供了一定的能力,但它的功能相对基础,主要限于顺序动作的构建,比如点击、右键点击、拖拽、按键等。

要模拟更自然的行为轨迹(例如,模拟人类手动移动鼠标的曲线或不规则路径),可能需要创造性地使用 move_by_offset 方法或者结合其他工具和算法来实现更复杂的交互效果。

模拟正常行为轨迹的示例

以下是一个使用 ActionChains 模拟较为“自然”的鼠标移动轨迹的简单示例。

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time

driver = webdriver.Chrome()
driver.get('http://www.example.com')

# 定位到一个起始元素,假设是页面上的某个固定点
start_element = driver.find_element_by_tag_name('body')

# 初始化ActionChains
actions = ActionChains(driver)

# 移动到起始元素
actions.move_to_element(start_element)

# 模拟一个简单的移动轨迹,比如模拟鼠标“波浪形”移动
for i in range(10):
if i % 2 == 0:
actions.move_by_offset(10, 10)
else:
actions.move_by_offset(-10, -10)

# 执行动作
actions.perform()